package com.zhl.arrays4;

import java.util.Arrays;
import java.util.Comparator;

public class ArrayTest2 {
    public static void main(String[] args) {
        Student[] students = new Student[5];
        students[0] = new Student(20,176.5, "柳岩");
        students[1] = new Student(25,180.5, "大鹏");
        students[2] = new Student(22,178.5, "章若楠");
        students[3] = new Student(43,182.5, "刘亦菲");
        students[4] = new Student(74,179.5, "沈腾");

        //1.public void sort(int[] arr)  对数组进行排序
//        Arrays.sort(students);
//        System.out.println("排序后："+Arrays.toString(students));//输出的是四个学生对象的地址  所以为了返回内容,重写toString方法

        //2.public static<T> void sort(T[] arr,Comparator<? super T> c)  对数组进行排序(支持自定义排序规则)
        //参数一：需要排序的数组
        //参数二：Comparator接口的匿名内部类对象（比较器对象）,用来指定比较规则。
        Arrays.sort(students, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                //制定比较规则  : 左边o1    右边o2
//                if(o1.getHeight() > o2.getHeight()){
//                    return 1;
//                }else if(o1.getHeight() < o2.getHeight()){
//                    return -1;
//                }
//                else{
//                    return 0;
//                }
                //简写   不懂可以去看源码，和上面一样的效果，只不过是使用了方法引用。
                return Double.compare(o1.getHeight(), o2.getHeight());//升序  ,如果想降序,调换以下位置就行。

            }
        });
        System.out.println("排序后："+Arrays.toString(students));
    }
}
